Data migration between storage devices may be necessary for a variety of reasons. For example, storage devices are frequently replaced because users need more capacity or performance. Additionally, it may be necessary to migrate data residing on older storage devices to newer storage devices. In “host-based” data migration, host CPU bandwidth and host input/output (“I/O”) bandwidth are consumed for the migration at the expense of other host application, processing, and I/O requirements. Also, the data marked for migration is unavailable for access by the host during the migration process. Finally, the migration application and updates must be installed on each of possibly many hosts, which presents administrative and stability problems.